package bigbrother;

import bigbrother.core.IrcBotCore;
import bigbrother.log.Log;

/**
 * Provides access to the different parts of the IrcBot to all modules.
 *
 * @author Hans Haggstrom
 */
public interface IrcBotContext
{
    /**
     * @return the {@link Log} that can be used to access existing irc logs, and to log new messages.
     */
    Log getLog();

    /**
     * Sends a message to the specified recipient, splitting the message into several messages if it contains newlines.
     *
     * @param message the message to send
     * @param target  the channel or person to send the message to.
     */
    void sendMultilineMessage( final String message, final String target );

    // TODO: Refactor, maybe split into classes with different functionality
    IrcBotCore getCore();
}
